package com.ibyte.org.server;

import com.ibyte.common.core.service.AbstractServiceImpl;
import com.ibyte.org.api.ISysOrgElementApi;
import com.ibyte.org.entity.SysOrgElement;
import com.ibyte.org.repository.SysOrgElementRepository;
import com.ibyte.sys.org.constant.SysOrgConstant;
import com.ibyte.sys.org.dto.SysOrgElementVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

/**
 * 抽象组织架构服务层，提供各种组织架构公共方法
 *
 * @author <a href="mailto:shangzhi.ibyte@gmail.com">iByte</a>
 * @since 1.0.1
 */
@Slf4j
@Transactional(readOnly = true, rollbackFor = {})
public abstract class AbstractElementCommonService<R extends SysOrgElementRepository<E>, E extends SysOrgElement, V extends SysOrgElementVO>
        extends AbstractServiceImpl<R, E, V> implements ISysOrgElementApi<V>, SysOrgConstant {

    @Autowired
    protected SysOrgElementService sysOrgElementService;
}
